ed57c3da93bd1deacd3134bbe9c8008e40569e31,Dart/src/com/jetbrains/lang/dart/analyzer/DartAnalysisServerService.java,DartAnalysisServerService,analysis_getErrors,#PsiFile#,209

Before Change


    semaphore.down();

    final String path = FileUtil.toSystemDependentName(file.getOriginalFile().getVirtualFile().getPath());
    myServer.analysis_getErrors(path, new GetErrorsConsumer() {
      @Override
      public void computedErrors(final AnalysisError[] errors) {
        resultError.set(errors);
        semaphore.up();
      }
    });
    semaphore.waitFor(10000);
    return resultError.get();
  }

After Change


    semaphore.down();

    try {
      myServer.analysis_getErrors(FileUtil.toSystemDependentName(vFile.getPath()), new GetErrorsConsumer() {
        @Override
        public void computedErrors(final AnalysisError[] errors) {
          if (semaphore.tryUp()) {
            resultError.set(errors);
          }
          else {
            // semaphore unlocked by timeout, schedule to highlight the file again
            ApplicationManager.getApplication().runReadAction(new Runnable() {
              @Override
              public void run() {
                final Project project = psiFile.isValid() ? psiFile.getProject() : null;
                if (project != null && !project.isDisposed()) {
                  DaemonCodeAnalyzer.getInstance(project).restart(psiFile);
                }
              }
            });
          }
        }
      });

      semaphore.waitFor(5000);
    }